package com.zmn.plat.model.entity.product;

import com.zmn.common.utils.pager.Pages;
import com.zmn.plat.model.entity.category.ServCategAndCategTwoQuery;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotEmpty;
import java.util.List;

/**
 * @author tanghongjun
 * @version v1.0
 * @类说明：
 * @modifier tanbiao 20190920 新增产品查询类型
 * @since 2018/10/16 11:30
 */
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Data
public class ProductQuery extends Pages {

    private static final long serialVersionUID = 1L;

    /**
     * 关键字 产品名称或ID，其中名称模糊匹配，ID精准匹配
     */
    private String keyWord;

    /**
     * 只匹配产品名称
     */
    private String onlyName;

    /**
     * 状态：1.下架，2.上架
     */
    private Integer status;

    /**
     * 渠道ID
     */
    private Integer channelId;

    /**
     * 产品类型 1后端产品 2前端产品
     *
     * @author tanbiao
     * @since 2019/9/20
     */
    private Integer showType;

    /**
     * 展示平台：1.言而有信、2.啄木鸟、3.一步生活、4.川南环保，如果展示平台有多个，用',''隔开
     */
    private String showPlat;

    private String bizType;

    /**
     * 服务分类ID
     */
    private List<Integer> servCategIds;

    /**
     * 产品1级分类ID
     */
    private List<Integer> categOneIds;

    /**
     * 产品2级分类ID
     */
    private List<Integer> categIds;

    /**
     * 服务分类ID和产品二级分类集合
     */
    private List<ServCategAndCategTwoQuery> servCategAndCategTwoQueryList;

    /**
     * 查询后台产品的标志位，分别有一下三种情况
     * 1 渠道产品+通用产品，此时channelId必须为指定的渠道，productType为null
     * 2 通用产品 此时channelId为空（null）productType为1
     * 3 渠道专属产品，此时channelId必须为指定的渠道，productType为2
     */
    private Integer productType;

    /**
     * 是否默认产品：1否 2是
     *
     * @author linfeng
     * @since 2020/10/16 11:44
     */
    private Integer defaultType;

    /**
     * 产品ID集合
     */
    private List<Integer> productIdList;

}